<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Задержки логических элементов</title>
</head>

<body bgcolor="FFFFFF">

<h1>Задержки логических элементов</h1>

<p>В качестве примера уровня проработанности алгоритма Logisim рассмотрим следующую схему.</p>
<center><img src="../../../../en/img-guide/prop-const0.png" width="171" height="55"></center>
<p>Она "очевидно" всегда даёт 0 на выходе. Но элементы НЕ не реагируют мгновенно на сигналы на входах в реальности, и в Logisim - тоже. В результате, когда значение на входе этой цепи изменяется с 0 на 1, элемент И будет короткое время видеть 1 на обоих входах, и выдаст на выходе 1 на короткое время. Вы не увидите этого на экране. Но этот эффект можно наблюдать, если мы подадим выход элемента И на тактовый вход D триггера.</p>
<center><img src="../../../../en/img-guide/prop-using-const0.png" width="231" height="68"></center>
<p>Если вы нажмёте на вход чтобы изменить значение с 0 на 1, то на D триггер мгновенно придёт 1, и его значение будет переключаться каждый раз, когда значение на входе схемы меняется с 0 на 1.</p>

<p>Каждый компонент имеет задержку, связанную с ним. Более сложные компоненты, встроенные в Logisim, как правило имеют большие задержки, но эти задержки несколько произвольны и могут не отражать реальность.</p>

<p>С технической точки зрения относительно легко обойтись таким уровнем проработанности в одной схеме. Удачное манипулирование с задержками элементов в подсхемах, однако, является немного более сложным; Logisim пытается справиться с этим, располагая просчитываемые для примитивных компонентов значения в одну очередь, независимо от подсхемы, в которой находится компонент.</p>

<p>(Через <a href="../opts/simulate.html">вкладку Моделирование</a> окна <a href="../opts/index.html">Параметры проекта</a> вы можете настроить Logisim на добавление случайной задержки к просчёту компонента. Это сделано для того, чтобы имитировать неравномерность реальных схем. Например, R-S триггер, построенный с использованием двух элементов ИЛИ-НЕ, будет возбуждаться без этой случайности, так как оба элемента будут обрабатывать свои входы "нога в ногу". Эта случайность отключена по умолчанию.)</p>

<p>Не могу позволить себе сказать, что Logisim всегда правильно обращается с задержками элементов. Но он по крайней мере пытается.</p>

<p><strong>Далее:</strong> <a href="oscillate.html">Ошибки при возбуждении</a>.</p>

</body>
</html>
